/*
 * @Author: 汪军 624473119@qq.com
 * @Date: 2023-11-10 09:41:11
 * @LastEditors: 汪军 624473119@qq.com
 * @LastEditTime: 2023-11-14 10:55:33
 * @FilePath: \antiraed-app\src\utils\permission.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

// 页面白名单，不受拦截
const whiteList = ["/pages/tabbar/home", "/pagesA/merchant/merchant-detail", "/pagesB/agreement/agreement"];
function hasPermission(url) {
  let result = false;
  let islogin = uni.getStorageSync("isLogin"); //isLogin是登录成功后在本地存储登录标识，存储一个能够判断用户登录的唯一标识就行
  islogin = Boolean(Number(islogin)); //返回布尔值
  console.log("islogin", islogin);
  // 在白名单中或有登录判断条件可以直接跳转
  // uni.showToast({ title: '请先登录再进行相关操作', icon: "none", duration: 1000 });
  whiteList.forEach((item) => {
    if (url.indexOf(item) !== -1 || islogin) {
      console.log("通过");
      // uni.switchTab({
      //     url: '/pages/tabbar/home'
      // })
      result = true;
    }
  });
  console.log("失败");
  return result;
}
uni.addInterceptor("navigateTo", {
  // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
  invoke(e) {
    console.log("e", e);
    if (!hasPermission(e.url)) {
      uni.reLaunch({
        url: "/pages/login/index"
      });
      return false;
    }
    return true;
  },
  success(e) {}
});

uni.addInterceptor("switchTab", {
  // tabbar页面跳转前进行拦截
  invoke(e) {
    console.log("e", e);

    if (!hasPermission(e.url)) {
      uni.reLaunch({
        url: "/pages/login/index"
      });
      console.log("不在白名单内");
      return false;
    }
    console.log("在白名单内");
    return true;
  },
  success(e) {
    console.log();
  }
});
